/**
 * Copyright: Copyright (c)2011
 * Company: 易宝支付(YeePay)
 */
package net.loyintean.pearlshell.validation;

import net.loyintean.pearlshell.base.model.IResult;

/** @author：jun.lin@yeepay.com
 * @since：2015年4月3日 下午6:37:20
 * @version: */
public interface IValidResult extends IResult<String> {

	/** 支持链式调用的校验方法
	 * <p>
	 * 如果当前校验结果为成功，则继续校验<br>
	 * 并将新的校验结果写入当前实例中<br>
	 * 否则直接返回当前校验结果<br>
	 * 
	 * @param filed
	 *            要求至少要校验一个字段
	 * @param fields
	 *            也可以一次校验多个字段
	 * @return */
	public IValidResult valid(IValidField filed, IValidField... fields);

	// [start] jun.lin 2015-03-20 以下是废弃的接口方法
	/** 判断操作结果是否为刚刚初始化
	 * 
	 * @author 團長
	 * @since 2015-04-03
	 * @deprecated 不支持这个状态判断 */
	@Override
	@Deprecated
	public boolean isInit();

	/** 判断操作结果是否为发生了异常
	 * 
	 * @author 團長
	 * @since 2015-04-03
	 * @deprecated 不支持这个状态判断 */
	@Override
	@Deprecated
	public boolean isException();

	/** 设定该操作结果的状态为操作异常，且返回数据为data，返回信息为message，操作异常为e
	 * <p>
	 * 当message是null或者空字符串时，将使用e.getMessage()
	 * 
	 * @author 團長
	 * @since 2013-9-18
	 * @param data
	 *            操作异常时的返回数据。通常是一个初始化时的数据
	 * @param message
	 * @param e
	 * @throws NullPointerException
	 * @deprecated 不支持这个状态判断 */
	@Override
	@Deprecated
	public void exception(final String data, final String message,
			final Exception e) throws NullPointerException;

	/** 设定该操作结果的状态为操作异常，且返回信息为message，操作异常为e。
	 * <p>
	 * 当message是null或者空字符串时，将使用e.getMessage()作为默认信息
	 * 
	 * @author 團長
	 * @since 2013-9-18
	 * @param message
	 * @param e
	 * @throws NullPointerException
	 * @deprecated 不支持这个状态判断 */
	@Override
	@Deprecated
	public void exception(final String message, final Exception e)
			throws NullPointerException;
	// [start] jun.lin 2015-03-20 以下是废弃的接口方法
}
